package com.yunpeng.aidevice.dao.mapper.relation;


import com.yunpeng.aidevice.dao.mapper.IRelationMapper;
import com.yunpeng.aidevice.dao.model.relation.FunctionsNodeRelationPermissionsDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 功能菜单权限配置 Mapper 接口
 * </p>
 *
 * @author hemw
 * @since 2020-04-07
 */
@Mapper
public interface FunctionsNodeRelationPermissionsMapper extends IRelationMapper<FunctionsNodeRelationPermissionsDO> {

    /**
     * 查询功能节点列表
     *
     * @param permissionCodes 权限代码集合
     * @return
     */
    List<String> queryFunctionNodeListPermissions(@Param(value = "permissionCodes") List<String> permissionCodes);

    /**
     * 根据功能节点代码删除绑定
     *
     * @param functionNodeCode 功能节点代码
     */
    void deleteByFunctionNode(@Param(value = "functionNodeCode") String functionNodeCode);

    /**
     * 根据权限代码删除绑定
     *
     * @param permissionCode 权限代码
     */
    void deleteByPermission(@Param(value = "permissionCode") String permissionCode);

    /**
     * 清理原有绑定关系
     *
     * @param functionNodeCode
     * @param permissionCodes
     */
    void clearRelation(@Param(value = "functionNodeCode") String functionNodeCode, @Param(value = "permissionCodes") List<String> permissionCodes);

    /**
     * 批量新增权限功能绑定
     *
     * @param functionsNodeRelationPermissionsDoLists
     */
    void batchAdd(@Param(value = "dos") List<FunctionsNodeRelationPermissionsDO> functionsNodeRelationPermissionsDoLists);
}
